IMS is a hierarchical database management system (HDBMS) developed by International Business Machines Corporation. IMS has wide spread usage in many large enterprises where high transaction volume, reliability, availability and scalability are of the utmost importance. IMS provides software and interfaces for running the businesses of many of the world's large corporations. However, companies incorporating IMS databases into their business models typically make significant investments in IMS application programs in order to have IMS perform meaningful data processing work particularly tailored to the needs of their respective enterprises. IMS application programs are typically coded in COBOL, PL/I, C, PASCAL or assembly language. These application programs may perform IMS database functions by making Data Language One (DL/I) calls to invoke needed IMS processing.
An IMS application program may have been originally developed to run as a stand-alone batch application outside of the IMS subsystem environment. These programs are characteristically invoked by specifying either “PARM=DLI” or “PARM=DBB” on the Job Control Language (JCL) EXEC statement and are henceforth referred to as DLI/DBB batch applications. However, there are limitations placed upon applications executing in this environment. An enterprise may conclude that a particular DLI/DBB batch application needs to be converted to a BMP batch application executing under the control of an IMS subsystem to better align with changing requirements and goals. For example, program recovery procedures may be greatly simplified by changing from a DLI/DBB batch application to a BMP running under the IMS subsystem. This simplification occurs because the BMP execution environment provides for advanced logging capabilities utilizing a single system log. Furthermore, the ability to share critical IMS resources is enhanced under the IMS subsystem since resources may be locked and unlocked dynamically as required, rather than locking these resources for the entire duration of the DLI/DBB batch application.
The conversion of a DLI/DBB batch application to a BMP batch application may entail a time consuming and error prone manual conversion process to comply with all requirements of the BMP environment. Although there are some language independent techniques for coding batch applications (e.g. a specification of CMPAT=Y), there are many batch applications that are coded with language specific entry points. These programs are hard coded to expect a list of pointers, which must match exactly the list of Program Communication Blocks (PCBs) described in the Program Specification Block (PSB) in number and in order.
Therefore, this manual conversion effort frequently requires modifying the DLI/DBB batch application to accept an Input/Output Program Communication Block (IOPCB). Other conversion changes may also include increasing the number of Checkpoint calls, modifying execution JCL to conform to BMP execution requirements and generating Access Control Blocks (ACBs) from the Program Specification Blocks (PSBs). However, those applications executing with PARM=DBB do not need to generate ACBs since they already exist when operating in the DBB environment. Those of ordinary skill in the art will further recognize that references to the PSB used by a batch application must also be added to the source macros for the IMS Stage 1 Gen (or equivalent definition to the IMS Control Region) prior to execution within the BMP environment.
Many IMS enterprises delay receiving, or entirely forego, these many BMP advantages because of the extensive coding effort, discussed supra, involved with the BMP enabling conversion process. Accordingly, there is a great need for automated conversion assistance for these IMS enterprises.